home *** CD-ROM | disk | FTP | other *** search
- #include "math.h"
- #include "stdio.h"
- #include "tspheaders.h"
- #include "TwoDView.h"
- #include "TwoDTSP.h"
- #include "prototypes.h"
-
- /************************************************************************/
- /* This function calculates the distance between every pair of cities in
- the problem.
-
- The distance between city i and city j where i < j is stored only once
- as k = i*NumberOfCities - i*(i+1)/2 + (j-i+1). Hence, the length of the
- distance array is NumberOfCities*(NumberOfCities - 1)/2.
- */
- /************************************************************************/
- /* Parameters: float *Data: Pointer to area that contains coordinates
- of cities.
-
- float *Distance: Pointer to area that will contain the
- distances between each pair of cities.
-
- int NumberOfCities: Number of cities in this tour.
- */
-
- /************************************************************************/
- /************************************************************************/
- void CalculateDistance(float *Data,float *Distance,int NumberOfCities)
- {
- int i,j,k;
-
- /* calculate distance between every pair of points */
- for(i=0;i<NumberOfCities;i++) {
- for(j=(i+1);j<NumberOfCities;j++) {
- k = kfrom(i,j,NumberOfCities);
- Distance[k] = (double)(square(x(i) - x(j))
- + square(y(i) - y(j)));
- Distance[k] = sqrt((double)Distance[k]);
- }
- }
- }
-